/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package datos;

import MYSQLConection.OperacionesDB;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import negocio.Usuario;

/**
 *
 * @author Adrian
 */
public class DaoUsuarios {
     private static DaoUsuarios instance;

    private DaoUsuarios() {
    }

    public static DaoUsuarios getInstance() {
        if (instance == null) {
            return instance = new DaoUsuarios();
        }
        return instance;
    }
    
    public boolean registrar(String cedula, String nombre, String apellido, String direccion, String telefono, String correoElectronico, String contrasena,String urlImagen) throws SQLException
    {
        
       OperacionesDB db = new OperacionesDB();
       String query="insert into usuarios values('"+cedula+"',"+"'"+nombre+"',"+"'"+apellido+"',"+"'"+direccion+"',"+"'"+telefono+"',"+"'"+correoElectronico+"',"+"'"+contrasena+"',"+"'"+urlImagen+"')";
       if(db.ingreso(query))
       {
          return true; 
       }
       else
       {
           return false;
       }
    
    }
    public void Modificar(String cedula, String nombre, String apellido, String direccion, String telefono, String correoElectronico, String contrasena) throws SQLException
    {
         System.out.println("3333"+cedula);
        OperacionesDB db = new OperacionesDB();
       String query = "UPDATE Usuarios SET nombre='"+nombre+"',apellido='"+apellido+",direccion='"+direccion+"',telefono='"+telefono+"',correo='"+correoElectronico+"',contrasena='"+contrasena+"' where cedula='"+cedula+"'";
       db.modificacioneliminacion(query);
       db.cerrarConexion();
        
    }
    public void Eliminar(String cedula) throws SQLException
    {
         
        OperacionesDB db = new OperacionesDB();
      String query1 = "delete from Eventos where cedula='"+cedula+"'";
       db.modificacioneliminacion(query1);
       db.cerrarConexion(); 
       
        String query2 = "delete from usuarios where cedula='"+cedula+"'";
       db.modificacioneliminacion(query2);
       db.cerrarConexion(); 
        
    }
    public ArrayList<Usuario> listar() throws SQLException
    {
       OperacionesDB db = new OperacionesDB();
       ArrayList<Usuario> users=new ArrayList();
         String query = "select * from Usuarios";
        ResultSet resultado = db.seleccion(query);
        Usuario user=null; 
        while (resultado.next()) {
           
          user = new Usuario(resultado.getString(1),resultado.getString(2),resultado.getString(3),resultado.getString(4),resultado.getString(5),resultado.getString(6),resultado.getString(7));
            users.add(user);
        }
         db.cerrarConexion();
        
        return users;
        
    }
    public boolean ExisteUsuario(String cedula) throws SQLException
    {
        OperacionesDB db = new OperacionesDB();
        int cont=0;
         String query = "select * from Usuarios where cedula='"+cedula+"'";
        ResultSet resultado = db.seleccion(query);
        while (resultado.next()) {
            cont++;
        }
         db.cerrarConexion();
        if(cont!=0){return true;}else{return false;}
        
    }
    public Usuario Logeo(String cedula, String contrasena) throws SQLException
    { 
        OperacionesDB db = new OperacionesDB();
        String query="Select * from usuarios where cedula='"+cedula+"'"+"and contrasena='"+contrasena+"'";
         ResultSet resultado=db.seleccion(query);
         Usuario user=null; 
        while (resultado.next()) {
           
          user = new Usuario(resultado.getString(1),resultado.getString(2),resultado.getString(3),resultado.getString(4),resultado.getString(5),resultado.getString(6),resultado.getString(7));
            
        }
         db.cerrarConexion();
        
        return user;
        
    }
    
    public boolean verificarContra(Usuario user, String contrasena)
    {
     if(user.getContrasena().equalsIgnoreCase(contrasena))
     {
         return true;
     }
     else{
     return false;
     }
    }
    
}
